Method and an apparatus for performing a program controlled process on a component

ABSTRACT

A drilling machine drills at a multiplicity of target locations on a component. Two robots, calibrated with calibration data, move the component in a 6-D coordinate system. A metrology system ascertains the position of the component relative to the drilling machine. The movement of the robots is effected by commands generated by off-line programming. The component is moved relative to the drilling machine to a target position, ready for drilling, by a closed-loop process in which the differences in position between the expected position (the target position) and the actual position (as viewed by the metrology system) are corrected.

RELATED APPLICATIONS

The present application is a Reissue of U.S. Pat. No. 7,813,830 B2,issued Oct. 12, 2012, which patent is based on International ApplicationNumber PCT/GB2006/000266 filed Jan. 26, 2006, and claims priority fromBritish Application Number 0513899.5 filed Jul. 6, 2005, the disclosuresof which are hereby incorporated by reference herein in their entirety.

The present invention relates to a method of performing aprogram-controlled process on a component and an apparatus therefor.

Machining or performing other processes on components that requireactions to be effected on the component at a plurality of differentlocations with a high degree of accuracy are typically effected with theuse of a program-controlled machine, for example, a multi-axismulti-jointed robot. In certain applications, the accuracy of the robotused in the process may be affected by temperature, manufacturingtolerances, and even loading of the robot. Efforts have been made toreduce errors that reduce accuracy arising from such effects, but withlimited success. For example, such robots may self-calibrate independence on temperature, and on the load carried by the robot. Thecalculations involved in correcting such errors are complicated andwhilst able to improve accuracy to some degree may still render therobot inappropriate for certain applications demanding high accuracy.For example, in the aerospace industry an accuracy of +−0.5 mm may berequired, whereas the robots typically used in machining certain massiveaerospace components may be unable to attain such high accuracies,despite the efforts made in the robotics industry to improve accuracy ofsuch robots.

The present invention seeks to provide a method of performing aprogram-controlled process on a component with improved accuracy.

According to a first aspect of the present invention there is provided amethod of performing a program-controlled process on a componentcomprising the following steps:

a) providing

-   -   (i) a component,    -   (ii) a first machine arranged to perform a process at a target        location on the component,    -   (iii) a second, program-controlled, machine for effecting        relative movement, in three dimensions and about a plurality of        different axes, of the component and the first machine, the        second machine being able, upon instruction, to move an object        within an acceptable margin of error to a target position,    -   (iv) a metrology system for ascertaining the position of the        component relative to the first machine,    -   (v) component data concerning the shape of the component and        including details of a plurality of locations on the component        at which processes are to be performed by the first machine, and    -   (vi) process data including details of movements to be made by        the second machine to enable processes to be performed by the        first machine on the component at said plurality of different        locations on the component,        b) issuing a command to perform a process on the component at a        target location on the component,        c) in dependence on the process data, causing the second machine        to effect relative movement of the component and the first        machine towards a target position, at which the first machine        and component are so positioned relative to each other that the        first machine is aligned to perform a process at the target        location on the component,        d) ascertaining with the metrology system and the component data        the relative position of the target location on the component        and the first machine,        e) calculating the relative movement required, if any, to move        the component and the first machine to the target position by        means of a calculation using inputs concerning (i) the expected        position of the first machine relative to the component and (ii)        the actual relative position of the component and the first        machine as ascertained in step d),        f) repeating steps (c), (d) and (e) as part of a closed-loop        process until the second machine has effected relative movement        of the component and the first machine to the target position        with a given degree of accuracy,        g) effecting a process with the first machine on the component,        and        h) repeating steps b) to g) in respect of a plurality of        locations on the component in accordance with the process data.

Thus the method of this aspect of the present invention facilitates theintegration of a metrology system with a program-controlled machine foreffecting relative movement of a component and a machine arranged toperform a process on the component. In an embodiment of the invention,the integration of the metrology system with the program-controlledmachine is advantageously so effected that process data enables thecomponent and first machine to be moved into approximate alignment witha target position, and component data, for example CAD data, can then beused in a closed-loop process in which the actual relative position ofthe component and the first machine may be ascertained and thencorrected in view of information from the metrology system and thecomponent data. The method of such an embodiment of the invention thusfacilitates greater accuracy of performing processes on a component atpredetermined locations than the prior art systems mentioned above thathave focussed on solely improving the accuracy of the positioning of arobot. In particular, the method of such an embodiment of the presentinvention enables CAD data to be used when performing processes on acomponent to ensure that the locations on the component of theperformance of the processes is in accordance with the target locationsby direct reference to the CAD data.

Preferably, there is provided a processor for performing step e). Aprocessor may be arranged to issue the command to perform a process onthe component at a target location (step b). A processor may be arrangedto cause the movement of the second machine. Preferably, there isfurther provided a memory for storing the component data, and/or theprocess data, and the processor is arranged to read data stored in thememory. The processor and memory may together form a processing unit.

It will of course be appreciated that separate processors may beprovided to perform such actions. In a case where the first machine, thesecond machine and the metrology system are sourced from separatesuppliers, it may be that each is provided with a separated dedicatedprocessor and a further processor is provided for controlling theperformance of the method of the invention. Alternatively a singleprocessor may be provided to perform such actions. For example, a singleprocessor may be provided for controlling the first machine, the secondmachine and the metrology system.

The method is of particular application in a case where the methodincludes effecting a process at a multiplicity of different locations ona single component with the first machine by performing steps b) to g)in respect of each such location. Steps b) to g) are preferably repeatedfor substantially all locations on the component at which the firstmachine performs a process.

The method may be performed in respect of a plurality of components allto be processed in the same way. In such a case, the method may includestoring, for example in memory accessible by a processor controlling theprocess, offset data concerning the difference between the positionattained as a result of effecting movement in accordance with theprocess data in respect of a target location on the component (andwithout performing the closed-loop position-correcting process) and thetarget position. Such offset data can then be used in successiveperformances of the method on a further component, to be processed inaccordance with the same component data, such that the second machinecan initially effect relative movement of the component and the firstmachine to a position in accordance with the process data in view of theoffset data.

The method may be performed to calibrate the movements to be effected bythe second machine. Such a method may be performed to enable the secondmachine to effect relative movement of the component and the firstmachine with a given degree of accuracy without further need of themetrology system. In accordance with this aspect of the presentinvention, the method may be considered as a closed-loop calibrationsystem for calibrating a program-controlled machine that effectsrelative movements of objects in space. It will be appreciated that inperforming such a calibration method, the provision of a component andthe performance of processes on a component may be optional features.However, it is preferred that the calibration method be performed as ifthe component were being processed in accordance with aspects of themethod of the invention as described herein which require processes tobe performed on a component. The method may further include storingdetails of the movements effected by the second machine taking intoaccount any correcting movements made as part of the closed-loopposition-correcting process and then performing processes at locationson a further component using the details so stored. Thus, after themovements effected by the second machine have been calibrated inrelation to performing processes at locations on a component inaccordance with component data, the use of a metrology system may beoptional in relation to performing processes on a further component inaccordance with the same component data.

Step c) may include causing the second machine to effect relativemovement of the component and the first machine towards the targetposition in dependence on such offset data. After effecting relativemovement of the component and the first machine in dependence on theprocess data and the offset data, the closed-loop position-correctingprocess may be performed in order to bring the component and the firstmachine into alignment with the target position with a given degree ofaccuracy. Using offset data in this way can significantly improve theaccuracy of the initial movement to the target position effected by thesecond machine before performance of the closed-loop process and cantherefore improve processing cycle times. Those skilled in the art willappreciate that robots, once suitably programmed, may be able to performpreviously conducted movements with little or negligible discrepanciesbetween the positions attained on successive repeats of the samemovements, despite the absolute accuracy of the robot being subject tomuch greater discrepancies between actual and target positions.

The calculation using (i) the expected position of the first machinerelative to the component and (ii) the actual relative position asascertained in step (d) may involve a step of comparing (i) the expectedrelative position with (ii) the actual relative position. For example,the calculation may include a step of ascertaining the difference (ordifferences) between (i) the expected relative position and (ii) theactual relative position. The calculation may include assessing whetherthe expected and the actual relative positions meet preset criteria. Forexample, the difference (or differences) between (i) the expectedrelative position and (ii) the actual relative position may be comparedto preset criteria. Such preset criteria may include one or morethresholds, such that if the one or more differences as calculated arebelow the one or more thresholds no corrective action is deemedrequired. The preset criteria may define the degree of accuracy ofpositioning the component and first machine in alignment with the targetposition.

It will be appreciated that at least some of the steps of the method ofthe invention need not necessarily be performed in order. For example,step (d) may be performed before or after step (c). Step (d) ispreferably performed after step (b). Step (e) is preferably performedafter steps (c) and (d).

The method may be so performed that, in respect of the steps performedin order for the first machine to perform a process at a single targetlocation on the component, the second machine is caused to effectrelative movement of the component and the first machine substantiallythe entire way to a position in accordance with the target location andthen step (f) is performed for the first time. Accordingly, the methodmay be performed such that as an initial step the relative positions ofthe first machine and the component are brought into approximatealignment by means of the second machine with the use of the processdata that does not necessarily enable accurate movement to the targetposition (for example, the second machine is only able to effectmovement to a given position within a margin of error that is muchgreater than the degree of accuracy required) and thereafter aclosed-loop process is performed (by means of step f) to bring thecomponent and the first machine into accurate alignment.

The input concerning the expected position of the first machine relativeto the component, as used in step e), may be calculated in view ofinformation concerning the position of the second machine. The expectedposition of the first machine relative to the component may becalculated with the use of calibration data that is used to calibratethe movements of the second machine. For example, such calibration datamay form part of a kinematic model of the second machine that allows thesecond machine to effect movements within a given margin of error. Theexpected position may be considered as the position in which the secondmachine “expects” the component to be relative to the first machine. Thecalculation of the input concerning the expected position mayadditionally use data that relates the position of the componentrelative to a position of a feature able to be measured by the metrologysystem. The expected and actual positions of the component used in thecalculation may thus comprise expected and actual positions of one ormore features able to be measured by the metrology system. Thecalculation may thus effectively comprise a direct comparison of theactual and expected positions of one or more features dependent on theposition of the component in the same coordinate system. The calculationof the input concerning the expected position or the actual position mayuse the component data.

It will be appreciated that, in the case where step (e) is performedafter the second machine has effected movement in order to bring thecomponent and first machine into alignment in accordance with the targetlocation, the expected position will be the position that is inaccordance with the target location with possible discrepancies relatingfor example to errors or inaccuracies in the movement effected by thesecond machine. (This may, for example, be explained by considering thatthe second machine “expects” to have made the movements necessary tobring the component and first machine into alignment in accordance withthe target location.)

The method may be so performed that, in respect of the steps performedin order for the first machine to perform a process at a single targetlocation on the component, steps (c), (d) and (e) are repeatedlyperformed during the relative movement of the component and the firstmachine and before there is effected relative movement of the componentand the first machine substantially the entire way to the position inaccordance with the target location.

The metrology system may detect the relative position of the componentand the first machine a multiplicity of times for each process cycle.Any or all of steps (c), (d) and (e) may be performed many times duringeach process cycle. For example, step (d) may be performed many timesper second and may be performed more frequently than ten times persecond.

It will be appreciated that the relative position of the component andthe first machine may be ascertained without either ascertaining theabsolute position of the component or the first machine relative toanother fixed reference. The relative position may be ascertained bydetecting the position of an object that is fixed relative to thecomponent and or the first machine. Thus, the metrology system need notdirectly measure the position of either the component or the firstmachine. The metrology system may make measurements that yield aparameter that allows the change in the relative position to beascertained, there being provided sufficient data that allows therelative position to be calculated.

In accordance with the method of the invention, steps (c), (d) and (e)are performed as part of a closed-loop system for enabling the secondmachine to effect relative movement of the component and the firstmachine to a position in accordance with the target location with agiven degree of accuracy. Such degree of accuracy may be determined inadvance and defined, preferably after or during installation of thesecond machine or for example by the end-user. The degree of accuracymay be defined by preset criteria. For ex ample, the preset criteria mayinclude limits on the absolute distance between the target location onthe component and the actual location at which the performance of aprocess by the first machine on the component is to take place. Such alimit may for example be less than 0.5 mm and may be of the order of 0.2mm or less. In the case where the performing of a process on thecomponent at a given location is defined not only by a position in threedimensions on the component, but also by a direction with one or moredegrees of freedom, the preset criteria may also include limits on theabsolute deviation from the target direction relating to the process tobe performed on the component. For example, the criteria may set athreshold angle of deviation from the target direction, under whichthreshold any error in orientation is deemed to be acceptable.

The process data preferably includes information concerning the actionsrequired to be made by the second machine in order to bring thecomponent at least into approximate alignment with the first machine inorder to perform a process on the component at each of a multiplicity ofdifferent locations. Preferably, the process data is, in advance of theperforming of the process at the first location, calculated fromcomponent data, for example in the form of a computer model of thecomponent. The computer model may be in the form of a CAD model.Preferably, the process data comprises commands passable by the secondmachine. Thus, much of the processing needed to control the movementseffected by the second machine may be conducted off-line and separatelyfrom the performance of the processes on the component.

The actions required to be made by the second machine in order to bringthe component into substantially exact alignment with the machine inorder to perform a process on the component at each of a multiplicity ofdifferent locations may be calculated in advance, for example by meansof off-line programming, to produce a sequence of commands forinstructing the movements to be effected by the second machine. It willof course be appreciated that if the second machine were moved inaccordance with the sequence of commands so produced, whether or not thecomponent would actually be brought into exact alignment with the firstmachine in respect of each of the multiplicity of different locationswould depend on the accuracy of the movements effected by the secondmachine. The process data may therefore be in the form of OLP (off-lineprocessing data). OLP data may comprise a sequence of a plurality ofmovements to be made by the second machine in respect of a givenlocation on the component to be processed by the first machine. Theremay for example be movements to intermediate relative positions, betweensuccessive target positions, of the component and the first machine thatthe second machine effects to avoid a collision.

The second machine may include a dedicated controller for controllingthe movement of the second machine, such that the commands producedduring performance of this aspect of the invention are passable by thecontroller.

The computer model of the component that may be used to produce theprocess data, is preferably a model of the fully processed component(i.e. after completion of all of the processes performed by the firstmachine). The component data may be in the form of a model of the fullyprocessed component (i.e. after completion of all of the processesperformed by the first machine). The component data may for example bein the form of CAD data. It will of course be appreciated that thephysical component on which processes are performed by means of themethod of the invention may differ from the component represented by thecomponent data. For example, in the case where the processes change theshape of the physical component, the shape of the component will change,as for example material is machined away from the component, during theperformance of the method. Also, the component may after performance ofthe method of the present invention be subjected to further processing,and the CAD model may include details of the component once such furtherprocesses are conducted. Thus at the end of the performance of themethod of the present invention the physical component may onlyrepresent an intermediate state of the component as represented by thecomponent data. The component data may be generated by means of usingthe metrology system to ascertain the shape of a previously manufacturedcomponent.

Preferably, the sequence of commands produced is checked prior toperforming steps (b) to (h) by means of a simulation of the performanceof the method on a component. The sequence of commands produced may forexample be checked to ensure that the metrology system will be able tomeasure adequately the relative positions of the component and the firstmachine during performance of the method. Also, the sequence of commandsproduced may for example be checked to ensure that there are nosingularities during the movement of the second machine during theperformance of steps (b) to (h). A singularity might occur, for example,where a part of the second machine is able to be rotated about twodifferent axes and, during the movements, the two axes are positionedsuch that movement of a part of the second machine about an axis canequally be effected by moving the second machine about either of the twoaxes. Such a choice between axes of rotation can, if appropriatemeasures are not taken, lead to the second machine failing.

The second machine may be calibrated by means of calibration data, thecalibration data enabling the second machine to move an object withinthe acceptable margin of error to a target position. The second machinemay be pre-calibrated, with calibration data for example, to takeaccount of discrepancies arising as a result of manufacturingtolerances. It will be appreciated that any discrepancy between thetarget position obtained by movement effected by the second machine andthe actual position may be as a result of inaccurate or out of datecalibration data. As such, the closed-loop process conducted to effectmovement of the component and the first machine to the target positionmay include a step of refreshing the calibration data in view of thediscrepancies between the actual and expected relative positions of thecomponent and the first machine. Such a recalibration may be performedonce in respect of a plurality of components. It may be conducted onceper component. It may even be conducted every time the closed-loopposition-correcting process is performed. Where the calibration data isupdated or refreshed, the calibration data may be stored in memoryaccessible by a processor used in performing the method. It will beappreciated that with sufficiently accurate calibration data the secondmachine would be able during steps (b) to (h) to effect movements toalign the component and the first machine in relation to the targetlocations with said given degree of accuracy. Thus, in the case wherethere the calibration data is refreshed in respect of each location,there may be no need for there to be any processing to translate errorsbetween target and actual positions of any objects into correctivemovements in commands passable by the second machine.

The metrology system may be able to measure the position of a part of anobject in a coordinate system having at least three degrees of freedom.The metrology system may be able to measure the position of a pluralityof different parts of the component. The metrology system may be able tomeasure the position of a plurality of different parts of the secondmachine. The metrology system may be so arranged that during step (d) itascertains the position of only certain fixed points on the object to bemeasured. The object to be measured may of course be the first machine,the second machine, the component or a reference spot. The measuring ofthe position of an object by the metrology system may be effected bymeans of measuring the positions of points that are fixed in spacerelative to the object. For example, the position of the component maybe measured by means of detecting the position of a jig that holds thecomponent in a single orientation.

In accordance with the invention the relative position of the component,for example the target location on the component, and the first machineis advantageously ascertained with the metrology system with the use ofthe component data. As mentioned above, such component data may compriseCAD data. The component data may include data concerning the positionalrelationship between the position of the component and one or morefeatures, on the component or on another object, that are during theperformance of the method of the invention positioned in fixed relationto the component and which may readily be measured by the metrologysystem. For example, such features may be readily identifiable featureson the component or features on a jig holding the component.

The method may include a step of identifying the relationship betweenthe position of the component and said one or more features. The one ormore features may for example be in the form of light spots that arefixed relative to the component. The method may include a step of usingthe metrology system to identify the position of the component by meansof recognising the shape of the component or one or more portions of thecomponent. Once the position of the component has been ascertained bythe metrology system the relationship between the position(s) of the oneor more features, (those features to be recognised by the metrologysystem during step (d) of the method when ascertaining the relativeposition of the component), and the position of the component may beidentified. In the case where the one or more features are in the formof light spots or other easy to measure features, the metrology systemis then able, in use, to readily identify the position of the componentwithout needing to recognise shape of the component or one or moreportions of the component. The metrology system may effectively track anotional reference frame that is defined by the position of the one ormore features. The position of the reference frame may be ascertained bymeans of the metrology system ascertaining the position of the one ormore features, and the position(s) of the component and/or the locationson the component to be processed by the first machine may be ascertainedby means of knowledge of their position(s) relative to the notionalreference frame. (It will of course be appreciated that if the positionof the component is to be ascertained with six degrees of freedom thenthe one or more features on the component, if in the form of points,must comprise at least three points fixed in space relative to thecomponent.)

The metrology system is preferably arranged to ascertain the positionsof a multiplicity of different points fixed on an object. The metrologysystem may for example be arranged to ascertain the position of each ofat least three and preferably at least six different points fixed on anobject. The points detected may be reference points. In such a case themethod may include a step during which the relative position of thefirst machine and the component are related to the detected position ofthe different points detected by the metrology system.

The three or more different points measured by the metrology system mayall be on the same object, for example on the component. Being able toascertain the position of more than three different points on the sameobject may allow the method of an embodiment of the invention to accountfor deformation of the shape of the object from an expected shape (forexample a previously measured shape). For example, the component maychange shape as a result of thermal expansion, or as a result ofdeforming under the action of gravity.

The metrology system may alternatively or additionally be arranged toascertain the position of at least three different fixed points on thefirst machine. The metrology system may alternatively or additionally bearranged to ascertain the position of at least three different fixedpoints on the second machine. The metrology system may alternatively oradditionally be arranged to ascertain the position of at least threedifferent fixed points on a reference object. Such a reference objectpreferably has a known location. Alternatively or additionally, thereference object may be fixed in space.

The metrology system may be arranged such that it ascertains theposition of an object by means of detecting electromagnetic radiation.The metrology system may be arranged such that it views an object bymeans of detecting visible or infra-red light.

The method may be so performed that during step (d) the metrology systemviews a multiplicity of points defined by light spots. The light spotsmay be in the form of reflectors that reflect light. The light spots mayalternatively be illuminated light sources, for example infra-red LEDs.

The relative movement that the second machine is able to effectpreferably allows the first machine and the component to be movedrelative to each other with at least five, and preferably six, degreesof freedom.

The second machine may comprise a multiplicity of pairs of parts, eachpart of each pair being rotatably mounted relative to the other part ofthe pair. For example, the second machine may comprise a multiplicity ofrotating joints. The plurality of different axes about which the secondmachine may effect relative movement are preferably movable relative toeach other. The second machine may for example comprise at least fivesets of rotating joints.

The second machine may comprise a multiplicity of independentlydriveable actuators. The second machine may comprise a robot. The secondmachine may comprise a plurality of robots for effecting the relativemovement of the component and the first machine. The or each robot maybe in the form of a multi-axis rotational robot, for example a six-axisrotational robot. The use of one or more multi-axis robots providesgreater flexibility in the movement of the robot(s) but complicates thecalibration of the robot geometry. This is because the or each robot hasmany different “solutions” (or ways) to move an object to a point havinga particular location, because the configuration of the axis positionsis typically such that the same point may be reached via more than oneroute (and typically with more than one configuration of the robotaxes). As a result of the calibration of the geometry of such robotsbeing so complex, the use of an embodiment of the present invention, inwhich the metrology system is advantageously present during operation ofthe robot(s), is particularly beneficial.

The second machine may be arranged to hold and move the componentrelative to fixed space.

The second machine may be arranged to hold the component at two separatelocations. The part of the component at each of the two locations ispreferably able to be moved in space by the second machine with at leastthree degrees of freedom. For example, the component may be held andmanipulated at one end by one robot and the component may be held andmanipulated at other end by another robot.

The metrology system may be arranged to output data concerning therelative position of the component and the first machine in a firstcoordinate system. The method may be so performed that the movementseffected by the second machine are in response to commands using asecond coordinate system. The second coordinate system may be differentfrom the first coordinate system. For example, the first coordinatesystem may be a Cartesian system whereas the second coordinate systemmay be a coordinate system making use of the relative rotationalpositions of a multiplicity of pairs of parts of the second machine (forexample in the case where the second machine comprises a multiplicity ofpairs of parts each part of each pair being rotatable mounted relativeto the other part of the pair).

Data may for example be provided that converts between the first andsecond coordinate systems and may for example include calibration data.The calibration data may be sufficient to allow the conversion betweenthe first and second coordinate systems. Alternatively, furtherconversion data may be required to allow conversion between the firstand second coordinate systems.

The performance of the method may be performed in such a way that thereis no need for knowledge of the actual position or orientation in fixedspace of the component or of the first machine. The relative position ofthe component and the first machine may be ascertained by measuring thepositions of one or more features that are fixed in position relative toone of the first machine and the component and establishing a firstnotional reference frame and then ascertaining the positions of one ormore features of the other of the first machine and the component anddefining a second notional reference frame and then ascertaining theposition of the first reference frame relative to the second referenceframe in a single coordinate system. Thus, one of the component and thefirst machine may be used as an origin in a single coordinate system.The coordinate system so used may thus move in fixed space.

The method may include an initial step of mounting the component andobtaining an initial indication of the position of the componentrelative to the first machine. The initial indication of the position ofthe component relative to the first machine may be obtained by means ofmanually aligning a teaching wand. The initial indication of theposition of the component relative to the first machine may be obtainedby means of detecting standard reference points in predeterminedpositions. The initial indication of the position of the componentrelative to the first machine may be obtained by means of detecting andrecognising the shape and its position and orientation.

The method may be so performed that the first machine effects a processon the component with a direction having at least two degrees offreedom. The process performed by the first machine may be in the formof a machining action. The machining action may be in the form of agrinding action. The machining action may be in the form of a drillingaction. The first machine may be a drilling machine. The processperformed by the first machine may be one that does not affect the shapeof the component. The process performed may comprise applying asubstance onto the component at a desired location. The substance couldfor example be an adhesive or a paint or another coating material. Theprocess performed may be to measure a parameter at a particular locationon the component. The process to be performed may be conducted along apreset path. In such a case, the method of the invention may beperformed in order to bring the component and the first machine intoaccurate alignment so that the first machine can start processing of thecomponent at the start of the path. Thereafter, the metrology system mayadvantageously be used to directly control the relative movement of thefirst machine and component along the path, along which the process isto be performed. The control of the relative movement of the firstmachine and the component along the path is preferably controlled withuse of component data. In such a case the component data advantageouslyincludes details of the process path on the component, for exampledetails the layout of the path on the component.

The first machine may comprise a multiplicity of independently driveableactuators. The first machine may comprise a robot. The first machine maycomprise a plurality of robots.

During performance of the method, the first machine may be fixed inposition. It will however be appreciated that the method is able to beperformed effectively whether or not the first machine is fixed inposition. The method is therefore able to account for accidentalmovements of the first machine even though the machine is configuredwith the intention of the machine being fixed in position. Moreover, theperformance of the method may be such that both the component and thefirst machine are moved relative to fixed space and/or the metrologysystem.

The method of the present invention may be of particular application inrelation to the machining of large and/or massive components. Forexample, the component may have a mass greater than 1 Kg. The componentmay have a mass greater than 10 Kg. The component may have a maximumdimension of greater than 200 mm. The component may have a maximumdimension of greater than 500 mm, or even greater than 1 m. Thecomponent may be an aerospace component.

The method may be so performed that the second machine effects movementof the component relative to fixed space.

It will of course be appreciated that certain terms used herein inrelation to the data used in the method can merely be considered aslabels to enable the reader to distinguish between types of data orbetween the same types of data at different stages in the performance ofthe method. Examples of such terms include “process data”, “componentdata” and “calibration data”.

In accordance with various aspects of the present invention actions,such as making correcting movements, are stated to be effected inresponse to the “difference” between expected and actual positions. Itwill be appreciated of course that any calculation that is performed toassess what action should be taken need not include a calculation inwhich such a difference is actually explicitly ascertained. Also, it maybe the case that if the difference or differences meets certain presetcriteria, the difference is deemed to be acceptable, thereby notrequiring any action.

According to certain aspects, the present invention seeks to align acomponent and a first machine in accordance with a “target location”. Itwill be appreciated that in certain applications, the process to beperformed on the component may require the component to be aligned withthe first machine both so that the first machine is able to act on thecomponent at a certain location on the component, and also so that thefirst machine may act in a given direction relative to the component.The target location may thus be considered as being defined by a targetposition of the first machine relative to the component. Such a targetposition may require five, and possibly six, independent variables todefine the target position. In other cases, for example where theprocess to be performed by the first machine simply requires a tool ofthe machine to contact the component at the target location without anyparticular direction, there may be one or more degrees of freedom inrelation to possible relative positions of the component and the firstmachine in which the component and first machine are correctly aligned.

The present invention also provides an apparatus for performing themethod of the invention as described herein.

According to a second aspect of the present invention, there is providedan apparatus for use in the manufacture of a component, for example anaircraft component having a mass of greater than 1 kg, the apparatuscomprising:

-   -   a first machine for performing a process on a component,    -   a second, program-controlled, machine for effecting relative        movement, in three dimensions and about a plurality of different        axes, of the first machine and a component,    -   a metrology system for ascertaining the position of the        component relative to the first machine,    -   a processor arranged to send signals to the second machine and        to receive signals from the metrology system, and    -   memory, accessible by the processor, for storing component data        concerning the shape of the component and including details of a        plurality of locations on the component at which processes are        to be performed by the first machine, and for storing process        data including details of movements to be made by the second        machine to enable processes to be performed by the first machine        on the component at said plurality of different locations on the        component,    -   the apparatus being arranged so that    -   a) in use, process data stored in the memory is used by the        processor to instruct the second machine to effect relative        movement of the first machine and a component towards a target        position, at which the first machine and component are so        positioned relative to each other that the first machine is        aligned to perform a process at a target location on the        component,    -   and so that    -   b) in use, during each cycle of operation that results in the        first machine performing a process on the component, the        apparatus performs a closed-loop process resulting in the second        machine effecting relative movement of the component and the        first machine to a position in accordance with the target        location with a given degree of accuracy,    -   and the processor being so programmed that    -   c) in use, the closed-loop process includes the processor        repeating the following steps:        -   i) obtaining a first input concerning the expected position            of the first machine relative to the component,        -   ii) ascertaining a second input concerning the actual            relative position of the target location on the component            and the first machine by means of data received from the            metrology system and the component data stored in the            memory, and        -   iii) ascertaining whether the first and second inputs are            such that the relative position of the component and the            first machine is in accordance with the target position with            a given degree of accuracy.

The processor may also be arranged to control the performing ofprocesses by the first machine on the component. The processor may alsobe arranged to control the metrology system. During performance of theclosed-loop process, the processor may cause the second machine toperform corrective movements in response to a calculation involving thefirst and second inputs. The programming of the processor so that itobtains a first input concerning the expected position of the firstmachine relative to the component may simply be in the form ofprogramming that causes the processor to derive the first input from thetarget location/position. Thus, the information concerning the positionof the second machine that is used may for example simply be in the formof a flag that indicates that the second machine has completed itseffecting of relative movement of the component and the first machine upto the target position in accordance with the process data.

The present invention further provides a processing unit programmed toperform the steps performed by the processor of the method according toany aspect of the invention described herein. The processing unitincludes for example a suitably programmed processor and a memoryaccessible by the processor.

According to a third aspect of the present invention, there is provideda processing unit for use in a method of performing a program-controlledprocess on a component, the method using a first machine to perform aprocess on the component at a target location on the component, asecond, program-controlled, machine for effecting relative movement ofthe first machine and the component, and a metrology system forascertaining the relative positions of the component and the firstmachine, the processing unit including a processor and a memoryaccessible by the processor, wherein

-   -   a) the processor is so arranged as to be able in use:        -   to send signals derived from process data stored in the            memory to the second machine instructing the second machine            to effect relative movement of the first machine and a            component towards a position so that the first machine may            then perform a process on the component at a target location            on the component, the process data including details of the            movements to be made by the second machine to enable            processes to be performed by the first machine on the            component at a plurality of different locations on the            component, and        -   to receive signals from the metrology system, which together            with component data, stored in the memory, concerning the            shape of the component and including details of said            plurality of locations on the component, provide information            concerning the actual relative position of a location on the            component at which a process is to be performed and the            first machine,    -   b) the processor is so programmed that in use during each cycle        of operation that results in the first machine performing a        process on the component, a closed-loop process is performed        during which the second machine effects relative movement of the        component and the first machine to a target position, at which        the first machine and component are so positioned relative to        each other that the first machine is aligned, with a given        degree of accuracy, to perform a process at the target location        on the component,    -   c) the processor is programmed to repeat the following steps        during the performance of the closed-loop process:        -   i) obtaining a first input concerning the expected position            of the first machine relative to the component,        -   ii) receiving and using data from the metrology system            together with component data to ascertain a second input            concerning the actual relative position of the target            location on the component and the first machine, and        -   iii) ascertaining whether the first and second inputs are            such that the relative position of the component and the            first machine is in accordance with the target position with            a given degree of accuracy,

until the processor ascertains that the relative position of thecomponent and the first machine is in accordance with the targetposition with the given degree of accuracy. The processor may be soprogrammed as to be able in use to ascertain data concerning theposition of the second machine. Such data may be used by the processorto ascertain the expected position.

The present invention also provides a programmed processor for use asthe processor used when performing any aspect of the method of theinvention described herein or for use as the programmed processor of theprocessing unit of the invention described herein. The processor may beprovided with a memory for storing calibration data.

The present invention further provides software, for example in the formof a computer software product, for programming a processor to producethe programmed processor of any aspect of the invention describedherein. The software may for example be recorded in electronic form onsuitable electronic media.

According to a fourth aspect of the present invention, there is providedsoftware for programming a processor of a processing unit, theprocessing unit including a memory and being for use in a method ofperforming a process on a component, the method using a first machine toperform a process on the component at a target location on thecomponent, a second machine for effecting relative movement of the firstmachine and the component, and a metrology system for ascertaining therelative positions of the component and the first machine, the softwareenabling the processor, once programmed with the software, to be able inuse:

-   -   a) to receive process data from the memory of the processing        unit, and to send instructions to the second machine to effect        relative movement of the first machine and a component to a        position so that the first machine may then perform a process on        the component at a target location on the component, the process        data including details of the movements to be made by the second        machine to enable processes to be performed by the first machine        on the component at a plurality of different locations on the        component,    -   b) to receive data from the metrology system and component data,        from the memory of the processing unit, the component data        concerning the shape of the component and including details of        said plurality of locations on the component, which together may        be used to ascertain the actual relative position of a location        on the component at which a process is to be performed and the        first machine, and    -   c) to perform a closed-loop process which enables the second        machine to effect relative movement of the component and the        first machine to a target position, at which the first machine        and component are so positioned relative to each other that the        first machine is aligned, with a given degree of accuracy, to        perform a process at the target location on the component,    -   wherein    -   (d) the software includes a closed-loop module that is arranged        to cause the processor to repeat the following steps:        -   i) obtaining a first input concerning the expected position            of the first machine relative to the component,        -   ii) receiving and using data from the metrology system            together with component data to ascertain a second input            concerning the actual relative position of the target            location on the component and the first machine, and        -   iii) ascertaining whether the first and second inputs are            such that the relative position of the component and the            first machine is in accordance with the target position with            a given degree of accuracy,        -   until the processor ascertains that the relative position of            the component and the first machine is in accordance with            the target position with the given degree of accuracy.

It will of course be appreciated that any of the above-describedapparatus, processing unit, processor, and software may incorporate anyof the features described with reference to the method of the inventiondescribed herein or any other aspect of the present invention. Also, themethod of the invention may include a step of using apparatus,processing unit, processor, and software according to any aspect of theinvention described herein.

According to a fifth aspect of the present invention, there is provideda component on which there has been performed processes by means of theperformance of the method according to any aspect of the inventiondescribed herein, by means of using the apparatus according to anyaspect of the invention described herein, by means of using an apparatusincluding a processor according to any aspect of the invention describedherein, or by means of using an apparatus including a processorprogrammed with software according to any aspect of the inventiondescribed herein.

Embodiments of the present invention will now be described by way ofexample with reference to the accompanying drawings of which:

FIG. 1a is a perspective view of a program-controlled apparatus formachining a component using two robots,

FIG. 1b is a further perspective view of the apparatus of FIG. 1a, butshowing the robots semi-transparently for the sake of clarity

FIG. 1c is a further perspective view form the side of the apparatus ofFIG. 1a, again showing the robots semi-transparently,

FIG. 2 is a perspective view of a jig of the apparatus used to hold thecomponent during machining,

FIG. 3 is a perspective view of the drilling machine used to effectmachining of the component,

FIG. 4 is a schematic diagram showing the processes used during themachining of a component with the apparatus, and

FIG. 5 is a high-level schematic diagram illustrating the main componentparts of the embodiment.

FIGS. 1a, 1b and 1c show an apparatus for performing aprogram-controlled process in which holes are drilled at predeterminedlocations on an intermediate component 10 that will ultimately form aD-nose (a component of an aircraft wing). The apparatus includes tworobots 12, 14 for manipulating a jig 11 in which the component 10 isheld, a fixed head drilling machine 16 with drilling tools 16a of a typestandard in the art, a metrology system and a computer for controllingthe operation of the apparatus. The jig 11, in which the component 10 issecured, is held at one end 11a by one 12 (the “master” robot) of thetwo robots and is held at the other end 11b by the other 14 (the “slave”robot) of the two robots.

The robots 12, 14, provided by KUKA Roboter GmbH (whose Headquarters areat Zugspitzstrasse 140, 86165 Augsburg, Germany), are Kuka Series 2000KR250 robots and are each provided with a KL linear track. Each robot istherefore in the form of a six axis jointed arm robot and is able tocarry a load of up to 240 kg. The robots are each provided with a driveunit that sends the signals to the motors that effect the movement ofthe robot. The drive unit is controlled by means of a PC-based robotcontroller (not shown in FIGS. 1a to 1c). During manufacture of therobots, each robot is calibrated by means of a CMM calibration (acalibration effected by a coordinate measuring machine, which measuresobjects in a coordinate based “space” or “measurement volume”). This CMMcalibration uses Kuka Roboter algorithms to create a software mapping(comprising calibration data) to increase the spatial accuracy of therobot within its entire working volume to a tolerance specified as +/−1mm from robot base to robot flange. This is known within the art as an“Absolute Accuracy” robot. Each robot thus has calibration data thatenable the robot to work to accurate tolerances, despite the factorsintroduced during manufacture that would otherwise reduce accuracy.Without this calibration, standard robots can typically be 2 mm to 5 mmaway from nominal in Cartesian space, and sometimes higher. Of course,standard robots are rarely truly specified in terms of spatial accuracy,but rather their task repeatability.

Once installed, the tools that a robot uses and the jig(s) that it worksin or with can be calibrated with respect to the robot. This is mostaccurately done with an external CMM. Without this, the manual errorscreated when calibrating “on-line” will typically only make the errorfrom nominal greater than the “out-of-box” error on the robot. Withoutan external CMM, the tolerances and accuracy of the manual calibrationdepend on the skill of the operator, the accuracy of the installationand the accuracy of the robot, because the robot (which is inherentlyinaccurate) is effectively used as the measurement device. Such acalibration process is called “Tool and Environment” calibration, as itis specific to the robot envelope within the robot cell environment.

Within the art “Tool and Environment” calibration of a standard robot,using the robot as a measurement device, would have an error of up to 10mm, requiring touch-up (i.e. manual adjustment) of the robot program onalmost all process points (the robot program being the sequence ofcommands that effects the movements of the robots 12, 14 to bring thedrilling machine 16 into alignment with the component 10 at successivepositions in accordance with the “process points”, that is, thepredetermined locations on the location at which holes are to bedrilled).

Using an external CMM to initially calibrate an absolute accuracy robottypically yields tolerances of up to 3 mm. As such, the touch-up of therobot program is still necessary. Using specialist robot metrologysoftware in addition to an external CMM, such as that supplied by Metrisfrom Interleuvenlaan 15D, B-3001 Leuven, Belgium, could be used toreduce the error to about 1 mm. In this embodiment, two “cooperatingrobots” are used, and the need for the robots to know exactly where eachother is in space is a pre-requisite. Also, errors of the order of amillimetre in relation to the location at which holes are drilled on thecomponent are too high when machining certain aerospace components, suchas a “D-nose”. Such an error is therefore still unacceptably high inapplications such as the present one. In addition to the difficultiesinherent in any calibration method, there is a need, when calibratingsuch robots, for the software to approximate a large number of variableson a series of revolute joints, back into Cartesian space. Also, othereffects, such as temperature and deflection underload, make accuratecalibration of a robot in Cartesian space extremely difficult throughoutits work envelope.

In the present embodiment, when machining a particular type and shape ofD-nose, the robot controllers of the robots 12, 14 are eachpre-programmed with commands that are used to effect the movements ofthe component relative to the drilling machine tool so that thecomponent is brought into correct alignment (within a given degree oferror depending on the accuracy of the calibration of the robots and therest of the system) with the tool 16a so that the drilling machine isapproximately aligned to drill the component at successive predeterminedlocations on the component 10. The pre-programmed commands are generatedusing Off-Line Programming (OLP) procedures and algorithms that are wellknown in the art. The OLP used in the present embodiment is that used inDELMIA V5 Robotics simulation software provided by Delmia Corporation(whose Worldwide Headquarters are at 900N, Squirrel Road, Auburn Hills,Mich. 48326 USA). The programming of two or more “cooperating robots”,as shown in this embodiment, is also integrated with Kuka Robotics KIRTechnology (Virtual Robot Controller). It will be appreciated that theuse of OLP commands is not in itself sufficient to align the drillingmachine and the component in accordance with the successivepredetermined target locations on the component as a result of thedifficulties associated with calibrating the system to perform withabsolute accuracy (as described above). The present embodiment uses ametrology system, in a closed-loop vision and movement process, toimprove accuracy as described in further detail below.

The metrology system is in the form of a “Krypton K610 series” CMMsystem, which is a 3-D coordinate dynamic measuring system provided byMetris of Interleuvenlaan 15D, B-3001 Leuven, Belgium and comprises anoptical camera unit 18 and associated computer hardware and software(not shown in FIGS. 1a to 1c). The camera unit 18 houses three linearCCD cameras and is able to measure the 3-D position of an infrared LEDwith accuracy of the order of about 60 microns. The field of view of thecamera is shown in the Figures by means of a notional envelope 20. Ascan be seen in FIG. 2, the jig 11 which holds the component 10 hasattached to it eight infra-red LEDs 40 which allow the camera unit 18 toascertain the position and orientation of the component 10 by means ofdetecting the position of the LEDs 40. Also, as can be seen in FIG. 3,the drilling machine 16 has attached to it four infra-red LEDs 42 whichallow the camera unit 18 to ascertain the position of the drillingmachine 16 by means of detecting the position of the LEDs 42. In bothcases, the LEDs 40, 42 are powered by means of local power units andcontrolled wirelessly. In use, the LEDs are caused to strobe, lightingone LED at a time in quick succession, by means of the Krypton systemcomputer hardware. The camera unit 18 then detects the radiation fromthe LEDs and sends the resulting data to the Krypton system computerhardware, which uses triangulation to identify the coordinates of eachLED in a 3-D Cartesian coordinate system.

It will be appreciated, with reference to FIG. 1b for example, that theenvelope 20 of the field of view of the camera unit 18 is not largeenough that all of the LEDs 40 on the jig 11 will be visible all of thetime. Also, the position of the component 10 and/or jig 11 may obscuresome of the LEDs 40, 42 on the jig 11 and the drilling machine 16,because the camera unit 18 will not have direct line of sight of allLEDs. The system is however able to cope with such situations becausethe positioning of the LEDs on the jig 11 is such that at least threeLEDs will be visible at any given time, thereby allowing the system toascertain the orientation of the component at all times. The position ofthe drilling machine 16, despite being fixed, is also checked with thesame frequency as the position of the component, so that the relativeposition of the target (drill 16a) is always known with respect to thecomponent 10 (held by the robots).

The PC unit (not shown in FIGS. 1a to 1c) supplied by Kuka as their Kukarobot controller, is also arranged to provide a software and hardwareinterface between the robots 12, 14 and the metrology system, such thatthe metrology system streams the LED positions to the interface. Withinthis interface, the dynamic positions of the LEDS are processed toprovide a 6DOF (6 degrees of freedom) frame that represents the positionof the component 10 in space, relative to a 6DOF frame that representsthe position of the target (drill 16) in space. These frames areprocessed into an ActiveX software interface, which also sits inside theKuka robot controller. The robot program, as created in OLP, alsoresides and runs on the same Kuka robot controller. The robot program iscreated using the same two Cartesian space 6DOF reference frames forcomponent 10 and drill 16, that, using the robots, move relative to eachother. The robots are effectively informed several times during theprocessing of a component of the variance between the nominal positionrequired by the robot program, and the actual position, thus allowingthe robots to correct their respective positions so the robots hold thecomponent in the correct position with respect to the drill, for eachdrilling process to accurately take place. The tolerance is userdefined, and has been proven at 0.1 mm and 0.05°.

The use of the apparatus to make a D-nose aircraft component will now bedescribed with reference to FIG. 4, which shows the various modules andprocesses that are used when manufacturing a component with the use ofthe apparatus shown in FIGS. 1a to 1c. The hardware of the apparatusshown in FIG. 4 includes the master robot 12, the slave robot 14, themetrology system 32 including the camera unit 18, the drilling machine16, and a central computer system. The computer system, represented bybox 34, performs various functions including controlling the movement ofthe robots 12, 14, the drilling operations performed by the drillingmachine 16, and the interrogation of the metrology system. The computersystems 34 thus include a robot controller 36 for controlling bothrobots 12, 14 and a drill controller 38 for controlling the drillingmachine 16. The computer system 34 interfaces, via a notional interface50, between the metrology system 32 and the robot controller 36.

The metrology system 32 includes a camera unit 18, which is able toascertain the position of the component 10 by means of ascertaining thepositions of LEDs 40 mounted on the jig 11 holding the component 10, andis able to ascertain the position of the axis of the drill tool 16a ofthe drill machine 16 by means of ascertaining the positions of LEDs 42mounted on the drilling machine 16. During use, the data acquired by thecamera unit 18 from the positions of the LEDs 40, 42 is processed bymeans of the integrated computer system 44 and associated software.

With reference to FIG. 4, a CAD model 30 of the component to be machinedis created. The CAD model 30 includes information defining the shape ofthe component 10 including information relating to features fixed in theposition relative to the component, the features being recognisable bythe metrology system 32, and also information concerning the drillingactions to be performed on the component including the positions of theholes on the component, the drill tool type to be used, and thedirection in which the drilling action is to be performed.

OLP commands are created from the CAD model 30 by means of an OLPprocess, represented by box 52 to provide a sequence of commandspassable by the robot controller 36 to cause the robots to make themovements necessary to move the component relative to the drillingmachine to bring the component into approximate alignment (within anaccuracy of the order of several millimetres) in respect of eachlocation at which a hole is to be drilled. The OLP commands arecalculated to bring the component and drill machine into exact alignmentwith each of a series of locations on the component, at which holes areto be drilled in accordance with the CAD model, assuming that the robotshave absolute accuracy. The physical movements actually made inaccordance with the OLP commands so calculated are unlikely to result inaccurate alignment as a result of the robots not having absoluteaccuracy.

LEDs 40 are fixed to the jig 11 at a variety of locations. The component10 is secured in position in the jig 11, the component and jig being soshaped that there is only one position relative to the jig 11 in whichthe component 10 (and future components of the same shape) may besecured to the jig 11. Thus the position of the LEDs 40 relative to thecomponent 10 is fixed. The positions of the LEDS 40 on the jig 11 arecalibrated in respect of the first component so to be machined. Thecalibration, which provides a relationship in software concerning therelationship between the positions of the LEDs 40 and the position ofthe component 10, comprises establishing a notional reference frame forthe jig (and therefore the component) by using a calibrated portable CMMhand probe (called a SpaceProbe of the Krypton system). The hand probeis used to measure the position of each of the LEDs 40 relative to theposition of the component, the position of which being ascertained withthe metrology system, acting as a CMM system, by recognising the shapeand position of the recognisable features comprised in the CAD model. Anotional component reference frame is then set which is fixed relativeto the LEDs 40 and the component 10. Thus the position of the notionalcomponent reference frame can subsequently be established from thepositions of the LEDs 40 and the position of the component 10 may thenbe ascertained by knowing the position of the notional componentreference frame. As well as during initial set-up, this facility mayalso be used for maintenance (i.e. when replacing a LED and/orre-referencing the system).

The definition of the notional component reference frame, which definesthe relationship between the positions of the LEDs 40 and the component,is stored in the computer system 34. Information from the metrologysystem concerning the position of at least three of the LEDs 40 on thejig 11 is thus able to be used by the computer system 34 to ascertainthe 6-D position and orientation of the component. LEDs 42 are alsofixed to the drilling machine and calibrated in the same manner toproduce a notional drilling machine reference frame, informationconcerning which also being stored in the computer system 34. As such,information from the metrology system 32 concerning the position of theLEDs 42 on the drilling machine 16 can be used to identify in fixedspace the position of the fixed drilling machine and consequently theposition of the axis of the drill tool 16a. Thus, the computer system 34is able to ascertain the position of the component 10 relative to thedrilling tool 16a of the drilling machine 16 by means of usinginformation from the metrology system 32 obtained by ascertaining therelative positions of the two notional reference frames.

The master robot 12, runs the main OLP program, and as such needs to“know” where the jig 11 is with respect to the drill 16. This isachieved if the metrology system can see a minimum of 3-off LEDS 40(i.e. three LEDs not lying on a single notional straight line in space)on the jig 11, and 3-off LEDS 42 on the drill. The positions andvisibility of the LEDS are accounted for and form a part of thesimulation and OLP process. They are therefore proven “off-line”, beforerunning in production. The slave robot 14 tracks the movements of themaster robot 12 and is in effect geometrically coupled. Both robots 12,14 are controlled from the same robot controller 36.

The master robot 12 is continuously informed of its relative positionvia the Active X interface that streams the actual 6-DOF positions inCartesian space. As part of the “interface” 50 residing in the computersystem 34, there is provided a software interface, using “cross-com”,that acts as an input socket for the true notional reference framepositions measured by the metrology system 32 and as an input for theOLP 52, and decides how to move the robots to the correct position.

The robots 12, 14 are thus instructed, by means of the commandsgenerated by the OLP 52 under the control of the computer system 34, tomove the component to align the component relative to the drilling toolfor the tool to drill the next hole at the next set location on thecomponent 10, the position being corrected and adjusted if necessarythereafter with the use of the metrology system. This process iscontrolled by means of a control program module 54 of the computersystem 34. First the robots are caused to move to the next coordinate(the start of this instruction being represented by box 56) by means ofthe computer system sending to the robot controller 36 the OLP commandsthat will move the component 10 to a target position such that the robotdrilling tool is aligned approximately (within an error margin) over thelocation on the component to be drilled and in the correct direction fordrilling (so that the axis of the hole to be drilled is aligned with theaxis of the drill tool). It will be appreciated that such a targetposition can be defined by means of a coordinate system having fivedegrees of freedom. During the movement of the robots 12, 14 that causesthe component 10 to move to the target position, the position of thecomponent is tracked by means of the metrology system, the position ofthe component being ascertained with a frequency of 1000 Hz.

After the OLP commands have been effected by the robots 12, 14 inrespect of the present coordinate 56 the target location of thecomponent should be aligned with the drill tool 16a within a givenmargin of error (dictated by the absolute accuracy of the robot, whichas mentioned herein, is not likely to be highly accurate), typically ofthe order of several millimetres. The position of the component 10 isthen ascertained with the metrology system 32, and communicated to therobot controller and the interface 50 (Step 60). A closed-loop processis then conducted to ensure that the component is in the target positionto within a preset threshold margin of error of ±0.1 mm and ±0.05°. Thetolerance is stored in memory in the interface 50. This tolerance isbased upon the minimum step size of the robot, as well as measurementcertainty of CMM and is user-defined.

The closed-loop position-correcting process is illustrated in FIG. 4 asa subprogram, which is represented by box 57, of the control programmodule 54. The interface 50 effectively checks if the actual positionattained is within tolerance 62 in relation to the target position andeffects correcting movements until the desired target position isachieved. Thus, the sub-program starts (box 58) by requesting themetrology system 32 to provide details (box 60) of the current positionof the notional component reference frame (and therefore the robots)relative to the notional drilling machine reference frame. Thesubprogram then calculates the difference, if any, between the actualrelative position as measured with the metrology system and the targetposition (which may be considered as the “expected position” of thecomponent in view of the positions of the robots and their currentcalibration data) and compares this difference with the preset tolerancethresholds, effectively enquiring whether the position is to tolerance(box 62). If the difference is greater than the threshold, then therelative position is not to tolerance (represented by the “No” box 64 inFIG. 4), and the position of the component is adjusted by means of theinterface 50 instructing the robots 12, 14 to perform an appropriatecorrective movement (represented by box 66). The new position is thenchecked again by starting the sub-program again (represented by box 58of FIG. 4). The sub-program is a closed-loop process and thus continuesadjusting the positions of the robots 12, 14 until the differencebetween the actual relative position of the component 10 and the targetposition is below the tolerance threshold (represented by the “Yes” box68). It will of course be appreciated that there may be circumstances inwhich no correctional movement is necessary, in which case the relativeposition of the component is not adjusted.

Once the sub-program 57 for checking and, if necessary, correcting theposition of the component is completed, the system 34 instructs(represented by box 70) the drill controller 34 to cause the drillingmachine 16 to drill the hole in the component 10 with the appropriatetool 16a. If the drill tool 16a to be used is different from theprevious tool that has been used, the new tool 16a is selected by thedrilling machine 16 and moved into position during the movement of thecomponent 10 into the target position. The depth drilled by the drilltool of the drilling machine varies from one hole to another, but inthis embodiment the maximum depth to be drilled is less than 6 mm. Theholes drilled pass from one side of the component to the other in thepresent embodiment.

Once the drilling of the hole at the current target coordinate on thecomponent has been completed the process continues by moving onto thenext coordinate (box 72) and the process is repeated by starting again(box 56) by processing that coordinate in the same way as the previouscoordinate. Once all coordinates have been machined the programfinishes, and the component may be removed from the jig 11.

A new component to be processed in accordance with the same OLP and CADdata may be installed in the jig 11 and the process repeated. Of course,given that the position of the component 10 relative to the jig 11 isfixed there is no need when repeating the process with a new componentof the same shape to perform initial set-up of LED calibrations.

Those skilled in the art will appreciate that the core technologyrepresented by the embodiment described above may be reproduced bycombining a metrology system from Krypton, an OLP suite from Delmia, anda suitable pair of robots from Kuka including a robot controllerinstalled on a PC, by creating the interface 50 and software program 54that allow the apparatus to facilitate the dynamic coordinate measuringand the closed-loop position-correcting process that enables thecomponent to be positioned in accordance with a target position towithin a user-defined threshold. The interface 50 is of course providedpartly by means of suitable software in the PC that performs thefunction of the above-described computer system 34 and partly by asuitable connection (software and/or hardware implemented) thateffectively provides a communication link between the hardware of theKrypton metrology system 32 and the robot controller 36 of the computersystem 34. This interpretation of the present embodiment is illustratedby means of FIG. 5, which shows the OLP 52 feeding into the robotcontroller 36. The standard programming of the robot by means of the OLPis represented by box 37. The metrology system 32 is connected to therobot system via the interface 50. In use the camera unit and integratedcomputer system 44 and associated software of the metrology system(collectively represented by box 19 in FIG. 5) receive signals from theLEDs 40 on the jig and from the LEDs 42 on the drilling machine andcalculates practically in real-time the coordinates of the LEDs. Thisinformation is then passed to the interface 50 via streaming software(represented by box 60) that calculates and streams data defining theposition of the component as a 6-D coordinate with almost zero latency.The interface 50 provides to the robot controller, on its request, aclose to real-time indication of the absolute position of the component,in the form of a coordinate in the reference system used by the robots(the reference system being the position of a notional reference framefixed to the component relative to a notional reference frame fixed tothe drilling machine). The robot controller 36 is then able to comparethis data on the position of the robots as measured by the metrologysystem 32 and make correctional movements as appropriate (by means ofrobot controller subprogram 57) as a closed-loop position-correctingprocess.

The embodiment described above has been developed to use robotic systemsin applications requiring tolerances significantly higher than thetolerances to which the robotic systems are designed to operate innormal use. This gives a step forward in the potential deployment ofrobotics in high accuracy applications, whilst using the robotsflexibility, re-programmability, and lower unit costs than bespokeautomation. This will deliver low cost flexible automation.

Whilst the present invention has been described and illustrated withreference to a particular embodiment, it will be appreciated by those ofordinary skill in the art that the invention lends itself to manydifferent variations not specifically illustrated herein. By way ofexample only, certain variations to the above-described embodiments willnow be described.

Real-time checking of the position of the component during the movementof the component to the target location may or may not be conducted. Itwill of course be appreciated that not checking positions betweenprocess points would relieve and free up for other purposes processingpower that would otherwise be used for this purpose.

Using a jig to hold a component may prove unsuitable with largecomponents. In such a case, the jig may be dispensed with and the robotsmay be secured to the component via other means. Without the use of ajig, which determines the position of the component relative to thepoint of attachment of each robot to the jig and thereby allows thesystem to ascertain the absolute position of the component by referenceto the previously calibrated LEDs fixed on the jig, there needs to beanother way of ensuring that the system is able to accurately determinethe absolute position of the locations to be processed (for exampledrilled) on the component. One way of achieving this aim is to placeLEDs at predefined “key characteristic” points on the component, wherethe key characteristic is such that an LED may be secured in relation tothe key characteristic with high accuracy. The key characteristic couldfor example be a corner on the component or a preformed hole in thecomponent. The positions of such key characteristics would of course beprovided as part of the CAD data provided to the system. LEDs couldalternatively be placed in rough alignment with preselected positions onthe component and then be calibrated by recognising features of thecomponent defined in the CAD model of the component and detecting thepositions of the LEDs in relation to such recognisable features. Such acalibration would of course be needed in respect of each component to beprocessed. At least some of the LEDs fixed on the component maythemselves be fixed in relation to each other, by means of providing theLEDs pre-mounted on a sub-jig for attachment to the component. Such anLED calibration is similar to the calibration of the LEDs on the jig asperformed during initial set-up of the system as described above.

Instead of the positions of the LEDs on the jig being calibrated withreference to features of the component recognisable by the metrologysystem, the recognisable features being derived from the CAD model, theposition of the component relative to the LEDs may be ascertained bymeans of fixing the LEDs to the jig 11 at accurately predeterminedlocations that are in accordance with locations defined within the CADmodel of the component. The LEDs may thus effectively be considered asrecognisable features which form part of the CAD data. Of course relyingon the positions of the LEDs without using the metrology system tocalibrate the position of LEDs in relation to the shape of the componentrelies on the initial positioning of the LEDs to be at least as accurateas the user-defined tolerances to be used when performing processes atthe predetermined locations on the component.

Particularly in the case where the component is large and massive, thecomponent may be so configured that it bends or otherwise deforms underthe action of gravity and so as it is manipulated in space by the robotsmay adopt a slightly different shape in dependence on its orientationrelative to the ground. If the component is large, thermal expansion andcontraction of the component can cause deformations of a size largeenough to affect the accuracy of the above-mentioned embodiment. Also,if the component is very massive, the mass of the component may affectthe calibration of the robot in that the joints and parts of the robotmay deform under the weight of the robot. It will be appreciated thatsuch deformations, even if they are simply elastic deformations, willaffect the accuracy of the machining if not accounted for. In the caseof very large or heavy components, LEDs may be provided at discretepositions spread over the whole of the component to enable the system tocompensate for local deformation of parts of the robots and/or of thecomponent. In such cases, the LEDs recognised by the metrology systemwhen seeking to correct the positioning of the component relative to themachine for performing a process at a predetermined location on thecomponent are preferably positioned locally in relation to the locationon the component. In such cases, it will be appreciated that LEDsmounted on one region of the component may, during performance of themethod, move relative to LEDs mounted on another region of thecomponent.

The above-described embodiment has been described with reference todrilling holes in a component for an aircraft. It will of course beappreciated that the present invention has application in otherindustries and is not limited to machining of components or to theaerospace industry. For example, the drilling machine could be replacedwith any machine for performing a localised process on a component,where high accuracy is required to ensure that the location at which theprocess is performed on the component is within an acceptable margin oferror. Such a process might for example be to attach a part at a givenlocation, to inspect the component at a particular location, or toperform a welding action.

More than one camera unit may be provided, which can allow the provisionof fewer LEDs.

The OLP data and/or the CAD data may be produced far in advance of themachining of the component. Such data may for example be produced in adifferent country from the country in which the machining of thecomponent is performed for example.

The correcting of the robots' positions may also result in a correctionof the calibration data. The calibration of the robots may thereforeupdate many times during the machining of a single component.

Where, in the foregoing description, integers or elements are mentionedwhich have known, obvious or foreseeable equivalents, then suchequivalents are herein incorporated as if individually set forth.Reference should be made to the claims for determining the true scope ofthe present invention, which should be construed so as to encompass anysuch equivalents. It will also be appreciated by the reader thatintegers or features of the invention that are described as preferable,advantageous, convenient or the like are optional and do not delimit thescope of the independent claims.

The invention claimed is:
 1. A method of performing a program-controlledprocess on a component comprising the following steps: a) providing (i)a component, (ii) a first machine arranged to perform a process at atarget location on the component, (iii) a second, program-controlled,machine for effecting relative movement, in three dimensions and about aplurality of different axes, of the component and the first machine, thesecond machine being able, upon instruction, to move an object within anacceptable margin of error to a target position, (iv) a metrology systemfor ascertaining the position of the component relative to the firstmachine, (v) component data concerning the shape of the component andincluding details of a plurality of locations on the component at whichprocesses are to be performed by the first machine, and (vi) processdata including details of movements to be made by the second machine toenable processes to be performed by the first machine on the componentat said plurality of different locations on the component, b) issuing acommand to perform a process on the component at a target location onthe component, c) in dependence on the process data, causing the secondmachine to effect relative movement of the component and the firstmachine towards a target position, at which the first machine andcomponent are so positioned relative to each other that the firstmachine is aligned to perform a process at the target location on thecomponent, d) ascertaining with the metrology system and the componentdata the relative position of the target location on the component andthe first machine, e) calculating the relative movement required, ifany, to move the component and the first machine to the target positionby means of a calculation using inputs concerning (i) the expectedposition of the first machine relative to the component and (ii) theactual relative position of the component and the first machine asascertained in step d), f) repeating steps (c), (d) and (e) as part of aclosed-loop process until the second machine has effected relativemovement of the component and the first machine to the target positionwith a given degree of accuracy, g) effecting a process with the firstmachine on the component, and h) repeating steps b) to g) in respect ofa plurality of locations on the component in accordance with the processdata.
 2. A method according to claim 1, further including repeatingsteps b) to h) in respect of a plurality of components of the sameshape.
 3. A method according to claim 1, wherein the method includes astep of storing offset data concerning the difference between theposition attained as a result of effecting movement in accordance withthe process data in respect of a target location on the component andthe target position.
 4. A method according to claim 1, wherein step c)includes causing the second machine to effect relative movement of thecomponent and the first machine towards the target position independence on offset data generated during a previous performance of themethod and step c) is conducted before step e) is conducted.
 5. A methodaccording to claim 1, wherein, in respect of the steps performed inorder for the first machine to perform a process at a single targetlocation on the component, the second machine is caused to effectrelative movement of the component and the first machine substantiallythe entire way to a position in accordance with the target location andthen step (f) is performed for the first time.
 6. A method according toclaim 1, wherein the degree of accuracy of the movement of the componentand the first machine to the target position achieved by means of stepf) is defined in advance by preset criteria.
 7. A method according toclaim 1, wherein the process data is, in advance of the performing ofthe process at the first location, calculated from the component data.8. A method according to claim 1, wherein the process data comprisescommands passable by the second machine.
 9. A method according to claim1, wherein the process data is in the form of OLP data.
 10. A methodaccording to claim 1, wherein the component data is in the form of CADdata.
 11. A method according to claim 1, wherein the metrology system isable to measure the position of a plurality of different parts of anobject in a coordinate system having at least three degrees of freedom.12. A method according to claim 1, wherein the metrology system is soarranged that during step (d) it ascertains the position of only certainpoints fixed in relation to the object to be measured.
 13. A methodaccording to claim 1, wherein the relative movement that the secondmachine is able to effect allows the first machine and the component tobe moved relative to each other with at least five degrees of freedom.14. A method according to claim 1, wherein the second machine comprisesa plurality of robots for effecting the relative movement of thecomponent and the first machine.
 15. A method according to claim 1,wherein the second machine holds and moves the component relative tofixed space.
 16. A method according to claim 15, wherein the secondmachine holds the component at two separate locations, the part of thecomponent at each of the two locations being able to be moved in spaceby the second machine with at least three degree of freedom.
 17. Amethod according to claim 1, wherein the metrology system outputs dataconcerning the relative position of the component and the first machinein a first coordinate system whereas the movements effected by thesecond machine are in response to commands using a second differentcoordinate system.
 18. A method according to claim 1, wherein the firstmachine effects a process on the component with a direction having atleast two degrees of freedom.
 19. A method according to claim 1, whereinthe first machine effects a machining action on the component.
 20. Amethod according to claim 1, wherein the component has a mass greaterthan 1 Kg and has a maximum dimension of greater than 200 mm.
 21. Acomponent on which there has been performed processes by means of theperformance of the method according to claim
 1. 22. An apparatus for usein the manufacture of a component, the apparatus comprising: a firstmachine for performing a process on a component, a second,program-controlled, machine for effecting relative movement, in threedimensions and about a plurality of different axes, of the first machineand a component, a metrology system for ascertaining the position of thecomponent relative to the first machine, a processor arranged to sendsignals to the second machine and to receive signals from the metrologysystem, and memory, accessible by the processor, for storing componentdata concerning the shape of the component and including details of aplurality of locations on the component at which processes are to beperformed by the first machine, and for storing process data includingdetails of movements to be made by the second machine to enableprocesses to be performed by the first machine on the component at saidplurality of different locations on the component, the apparatus beingarranged so that a) in use, process data stored in the memory is used bythe processor to instruct the second machine to effect relative movementof the first machine and a component towards a target position, at whichthe first machine and component are so positioned relative to each otherthat the first machine is aligned to perform a process at a targetlocation on the component, and so that b) in use, during each cycle ofoperation that results in the first machine performing a process on thecomponent, the apparatus performs a closed-loop process resulting in thesecond machine effecting relative movement of the component and thefirst machine to a position in accordance with the target location witha given degree of accuracy, and the processor being so programmed thatc) in use, the closed-loop process includes the processor repeating thefollowing steps: i) obtaining a first input concerning the expectedposition of the first machine relative to the component, ii)ascertaining a second input concerning the actual relative position ofthe target location on the component and the first machine by means ofdata received from the metrology system and the component data stored inthe memory, and iii) ascertaining whether the first and second inputsare such that the relative position of the component and the firstmachine is in accordance with the target position with a given degree ofaccuracy.
 23. A processing unit for use in a method of performing aprogram-controlled process on a component, the method using a firstmachine to perform a process on the component at a target location onthe component, a second, program-controlled, machine for effectingrelative movement of the first machine and the component, and ametrology system for ascertaining the relative positions of thecomponent and the first machine, the processing unit including aprocessor and a memory accessible by the processor, wherein a) theprocessor is so arranged as to be able in use: to send signals derivedfrom process data stored in the memory to the second machine instructingthe second machine to effect relative movement of the first machine anda component towards a position so that the first machine may thenperform a process on the component at a target location on thecomponent, the process data including details of the movements to bemade by the second machine to enable processes to be performed by thefirst machine on the component at a plurality of different locations onthe component, and to receive signals from the metrology system, whichtogether with component data, stored in the memory, concerning the shapeof the component and including details of said plurality of locations onthe component, provide information concerning the actual relativeposition of a location on the component at which a process is to beperformed and the first machine, b) the processor is so programmed thatin use during each cycle of operation that results in the first machineperforming a process on the component, a closed-loop process isperformed during which the second machine effects relative movement ofthe component and the first machine to a target position, at which thefirst machine and component are so positioned relative to each otherthat the first machine is aligned, with a given degree of accuracy, toperform a process at the target location on the component, c) theprocessor is programmed to repeat the following steps during theperformance of the closed-loop process: i) obtaining a first inputconcerning the expected position of the first machine relative to thecomponent, ii) receiving and using data from the metrology systemtogether with component data to ascertain a second input concerning theactual relative position of the target location on the component and thefirst machine, and iii) ascertaining whether the first and second inputsare such that the relative position of the component and the firstmachine is in accordance with the target position with a given degree ofaccuracy, until the processor ascertains that the relative position ofthe component and the first machine is in accordance with the targetposition with the given degree of accuracy.
 24. Software for programminga processor of a processing unit, the processing unit including a memoryand being for use in a method of performing a process on a component,the method using a first machine to perform a process on the componentat a target location on the component, a second machine for effectingrelative movement of the first machine and the component, and ametrology system for ascertaining the relative positions of thecomponent and the first machine, the software enabling the processor,once programmed with the software, to be able in use: a) to receiveprocess data from the memory of the processing unit, and to sendinstructions to the second machine to effect relative movement of thefirst machine and a component to a position so that the first machinemay then perform a process on the component at a target location on thecomponent, the process data including details of the movements to bemade by the second machine to enable processes to be performed by thefirst machine on the component at a plurality of different locations onthe component, b) to receive data from the metrology system andcomponent data, from the memory of the processing unit, the componentdata concerning the shape of the component and including details of saidplurality of locations on the component, which together may be used toascertain the actual relative position of a location on the component atwhich a process is to be performed and the first machine, and c) toperform a closed-loop process which enables the second machine to effectrelative movement of the component and the first machine to a targetposition, at which the first machine and component are so positionedrelative to each other that the first machine is aligned, with a givendegree of accuracy, to perform a process at the target location on thecomponent, wherein (d) the software includes a closed-loop module thatis arranged to cause the processor to repeat the following steps: i)obtaining a first input concerning the expected position of the firstmachine relative to the component, ii) receiving and using data from themetrology system together with component data to ascertain a secondinput concerning the actual relative position of the target location onthe component and the first machine, and iii) ascertaining whether thefirst and second inputs are such that the relative position of thecomponent and the first machine is in accordance with the targetposition with a given degree of accuracy, until the processor ascertainsthat the relative position of the component and the first machine is inaccordance with the target position with the given degree of accuracy.25. A method according to claim 1, wherein there is provided a processorfor performing step c).